package com.voc.im.xmpp;

import io.datafx.controller.injection.scopes.ApplicationScoped;
import org.jivesoftware.smack.AbstractXMPPConnection;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.chat2.Chat;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.roster.RosterEntry;
import org.jivesoftware.smackx.muc.MultiUserChat;
import org.jivesoftware.smackx.muc.RoomInfo;
import org.jivesoftware.smackx.muc.packet.MUCUser;
import org.jxmpp.jid.EntityBareJid;
import org.jxmpp.jid.EntityJid;
import org.jxmpp.jid.Jid;

import java.util.Collection;

public class IMCallback implements IMInterface {

    private IMConnection imConnection;
    private AbstractXMPPConnection connection;

    public IMCallback(IMConnection imConnection,AbstractXMPPConnection connection) {
        this.imConnection = imConnection;
        this.connection = connection;
    }

    @Override
    public void onBookmarkedConferences(RoomInfo roomInfo, int sub) {

    }

    @Override
    public void onOwnershipRevoked(RoomInfo roomInfo) {

    }

    @Override
    public void connected(XMPPConnection connection) {

    }

    @Override
    public void authenticated(XMPPConnection connection, boolean resumed) {

    }

    @Override
    public void connectionClosed() {

    }

    @Override
    public void connectionClosedOnError(Exception e) {

    }

    @Override
    public void processMessage(Message message) {

    }

    @Override
    public void processStanza(Stanza packet) throws SmackException.NotConnectedException, InterruptedException, SmackException.NotLoggedInException {

    }

    @Override
    public void newIncomingMessage(EntityBareJid from, Message message, Chat chat) {

    }

    @Override
    public void newOutgoingMessage(EntityBareJid to, Message message, Chat chat) {

    }

    @Override
    public void rosterEntries(Collection<RosterEntry> rosterEntries) {

    }

    @Override
    public void entriesAdded(Collection<Jid> addresses) {

    }

    @Override
    public void entriesUpdated(Collection<Jid> addresses) {

    }

    @Override
    public void entriesDeleted(Collection<Jid> addresses) {

    }

    @Override
    public void presenceChanged(Presence presence) {

    }

    @Override
    public SubscribeAnswer processSubscribe(Jid from, Presence subscribeRequest) {
        return null;
    }

    @Override
    public void invitationReceived(XMPPConnection conn, MultiUserChat room, EntityJid inviter, String reason, String password, Message message, MUCUser.Invite invitation) {

    }

    @Override
    public void pingFailed() {

    }
}
